package comunicacao;

/**
 * @author igo
 * Classe CriarJogo
 * Classe que serve para enviar a informação da criação de um jogo ao Servidor.
 */
public class CriarJogo extends Comunicacao{

    private String Nome;
    private int n_max;
    private boolean p2_ia;
    private boolean p3_ia;
    private boolean p4_ia;
    
    /**
     * Constructor do CriarJogo
     * @param Nome - Recebe o nome do jogo.
     * @param n_max - Recebe o número máximo de jogadore que o jogo comporta.
     * @param p2_ia - True se o Jogador 2 é controlado pelo CPU ou False se for um jogador Humano
     * @param p3_ia - True se o Jogador 3 é controlado pelo CPU ou False se for um jogador Humano
     * @param p4_ia - True se o Jogador 4 é controlado pelo CPU ou False se for um jogador Humano 
     */
    public CriarJogo(String Nome, int n_max, boolean p2_ia, boolean p3_ia, boolean p4_ia){
        this.Nome = Nome;
        this.n_max = n_max;
        this.p2_ia = p2_ia;
        this.p3_ia = p3_ia;
        this.p4_ia = p4_ia;
    }
    
    @Override
    public TipoComunicacao getTipo() {
        return TipoComunicacao.CRIAR;
    }
    
    /**
     * 
     * @return Retorna o nome do Jogo
     */
    public String getNome(){
        return Nome;
    }
    
    /**
     * 
     * @return Retorna o número de jogadores máximo do jogo
     */
    public int getJMax(){
        return n_max;
    }
    
    /**
     * 
     * @return Retorna se o jogador 2 é controlado pelo CPU (True) ou por um Humano (False)
     */
    public boolean getP2IA(){
        return p2_ia;
    }
    
    /**
     * 
     * @return Retorna se o jogador 3 é controlado pelo CPU (True) ou por um Humano (False)
     */
    public boolean getP3IA(){
        return p3_ia;
    }
    
    /**
     * 
     * @return Retorna se o jogador 4 é controlado pelo CPU (True) ou por um Humano (False)
     */
    public boolean getP4IA(){
        return p4_ia;
    }   
}